package com.songlanyun.common.supplychainapi.aftersale.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 售后前置校验
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AfterSaleParam implements Serializable {

    /**
     * 期望退还的商品金额（分），仅退款时不用填写。
     * 退货退款时，需要填写
     */
    private Double goodsFee;
    /**
     * 期望退还的运费金额（分）
     * 仅做参考作用，具体以实际为准。
     */
    private Double logisticFee;
    /**
     * 申请售后的商品数量
     */
    private Integer num;
    /**
     * 三方订单号
     */
    private String orderSn;
    /**
     * 包装情况code
     * 必须根据校验接口的返回情况，决定该项是否必须
     * 如果必须，必须填写校验接口packageType中返回的code
     */
    private String packageTypeCode;
    /**
     * 取件类型code
     * 必须返回校验接口中pickType返回的code
     */
    private String pickTypeCode;
    /**
     * 申请售后的原因，详细说明。
     * 限制最长150个文字
     */
    private String reasonsDescription;
    /**
     * 原因类型code
     * 必须根据校验接口的返回情况，决定该项是否必须
     * 如果必须，必须填写校验接口reasonsType中返回的code
     */
    private String reasonsTypeCode;
    /**
     * 反件情况code必须根据校验接口的返回情况，决定该项是否必须如果必须，必须填写校验接口returnType中返回的code
     */
    private String returnTypeCode;
    /**
     * 苏宁 上门维修服务时间
     */
    private String serviceTime;
    /**
     * 售后类型code
     * 必须填写校验接口中serviceType项返回的code
     */
    private String serviceTypeCode;
    /**
     * 商品sku
     */
    private Long sku;
    /**
     * 个人信息
     * 仅当取件方式为上门取件、售后类型为维修、换货 需要传递此项
     */
    private UserInfo userInfo;
    /**
     * 凭证图片列表
     * 必须根据校验接口的返回情况，决定该项是否必须
     * 如果必须，必须填写上传售后凭证接口返回的url
     * 最多填写5个url
     */
    private String[] vouchers;
}
